home *** CD-ROM | disk | FTP | other *** search
/ United Public Domain Gold 4 / United Public Domain Gold 4.iso / fredfish / ff.0848.dms / ff.0848.adf / CWeb / ReadMe.amiga < prev    next >
Text File  |  1993-03-31  |  11KB  |  231 lines

  1.                             -*-Text-*-
  2. % This file, README.AMIGA, is part of CWEB-p.
  3. % The CWEB programs by Silvio Levy are based on programs by D. E. Knuth.
  4. % ANSI-C conforming changes and Turbo-C++ implementation are made by
  5. % Hans-Hermann Bode <HHBODE@DOSUNI1.BITNET or
  6. % hhbode@dosuni1.rz.uni-osnabrueck.de>, additional support for other
  7. % ANSI-C compilers (e.g. c89) provided by Klaus Guntermann
  8. % <guntermann@iti.informatik.th-darmstadt.de>.
  9. % Additional support of the SAS/C 6.0 compiler on AMIGA provided by
  10. % Andreas Scherer (sorry, no e-mail) based on ideas of Carsten Steger.
  11. % The programs are distributed WITHOUT ANY WARRANTY, express or implied.
  12. % This readme file last updated March 16th 1993 by Andreas Scherer.
  13.  
  14. % Copyright (C) 1987,1990,1992 Silvio Levy and Donald E. Knuth
  15. % Copyright (C) 1991,1992 Hans-Hermann Bode
  16. % Copyright (C) 1992 Klaus Guntermann
  17. % Copyright (C) 1993 Andreas Scherer
  18.  
  19. % Permission is granted to make and distribute verbatim copies of this
  20. % document provided that the copyright notice and this permission notice
  21. % are preserved on all copies.
  22.  
  23. % Permission is granted to copy and distribute modified versions of this
  24. % document under the conditions for verbatim copying, provided that the
  25. % entire resulting derived work is distributed under the terms of a
  26. % permission notice identical to this one.
  27.  
  28. % Please send comments, suggestions, etc. concerning to the original CWEB to
  29. % levy@math.berkeley.edu.
  30. % Send suggestions and complaints concerning to the ANSI-C/Turbo-C++
  31. % implementation to HHBODE@DOSUNI1.BITNET.
  32. % Send suggestions and complaints concerning to the SAS/C 6.0
  33. % implementation to Andreas Scherer,
  34. % Abt-Wolf-Straße 17, 96215 Lichtenfels, Federal Republic of Germany
  35.  
  36. This is the ANSI-C/Turbo-C++ implementation of Silvio Levy's and
  37. Donald E. Knuth's CWEB system, compiled and provided with changefiles
  38. for ANSI C and Turbo C++ and a makefile for Turbo Make by
  39. Hans-Hermann Bode, including additional changes to improve support of
  40. ANSI-C compilers and a makefile for c89 by Klaus Guntermann, and including
  41. additional changes to support the SAS/C 6.0 compiler on AMIGA. Note that
  42. the changes for the Turbo-C++ compiler are made conditional (they will
  43. become effective only if the symbol __TURBOC__ is defined, which
  44. automatically is the case when compiled with Turbo C++), so users of other
  45. systems with ANSI-C compilers might be able to compile the sources without
  46. editing.
  47.  
  48. This directory contains the following files from the original CWEB
  49. distribution (`.' denotes the local directory):
  50.  
  51. ./makefile.org        makefile from the original distribution
  52. ./readme.org        readme file from the original distribution
  53. ./common.h        header file to be included in ctangle.w and cweave.w
  54. ./common.w        common code for ctangle and cweave
  55. ./ctangle.w        the tangle processor
  56. ./cweave.w        the weave processor
  57. ./cweb.1        manual page (nroff format)
  58. ./cweb.el        elisp file for GNU Emacs
  59. ./cwebmac.tex        macros for formatting
  60. ./cwebman.tex        the user manual
  61. ./prod.w        production rules to be included in cweave.w
  62. ./examples        directory containing examples of CWEB programming
  63. ./examples/wc.w        - UNIX word-count utility
  64. ./examples/treeprint.w    - tree-structured directory lister by Norman Ramsey
  65. ./examples/wmerge.w    - WEB-like file merger by Silvio Levy
  66. ./examples/extex.w    - spellchecking filter for TeX and CWEB by Don Knuth
  67. ./examples/wordtest.w    - spellchecker by Don Knuth
  68. ./examples/xlib_types.w    - include file for XView programs
  69. ./examples/xview_types.w- ditto
  70. ./examples/kspell.el    - Emacs interface to extex/wordtest
  71. ./examples/makefile    - generic makefile for CWEB applications
  72. ./examples/readme    - readme file from the examples directory
  73.  
  74. Note that the changefiles provided in the original distribution for vms are
  75. removed here.
  76.  
  77. The following files are added in this distribution:
  78.  
  79. general:
  80. ./cweb.man        manual page (ASCII format)
  81. ./common-p.hch        change file for common.h
  82. ./common-p.ch        change file for common.w
  83. ./ctangl-p.ch        change file for ctangle.w
  84. ./cweave-p.ch        change file for cweave.w
  85. ./prod-p.ch        change file for prod.w
  86. ./ccwebmac.ch        change file for cwebmac.tex (including C++ macros)
  87. ./ccwebmacg.ch        change file for cwebmac.tex (including German macros)
  88. ./cwebmang.ch        change file for cwebman.tex
  89. ./common-p.h        WMERGEd product of common.h and common-p.hch
  90. ./prod-p.w        WMERGEd product of prod.w and prod-p.ch
  91. ./ccwebmac.tex        WMERGEd product of cwebmac.tex and ccwebmac.ch
  92. ./ccwebmacg.tex        WMERGEd product of cwebmac.tex and ccwebmacg.ch
  93. ./cwebmang.tex        WMERGEd product of cwebman.tex and cwebmang.ch
  94. ./common.c        CTANGLEd product of common.w and common-p.ch
  95. ./ctangle.c        CTANGLEd product of ctangle.w and ctangl-p.ch
  96. ./examples/wmerge-p.ch    change file for wmerge.w
  97. ./examples/wmerge.c    CTANGLEd product of wmerge.w and wmerge-p.ch
  98.  
  99. special for users of c89 or other ANSI C compilers:
  100. ./makefile.c89        makefile for c89
  101. ./readme.c89        this file for users of c89
  102.  
  103. special for PC users:
  104. ./makefile.pc        makefile for Turbo C++
  105. ./readme.pc        informations for PC users
  106.  
  107. special for AMIGA users:
  108. ./readme.amiga        informations for AMIGA users
  109. ./makefile.amiga    makefile for SAS/C 6.0
  110. ./ctangle        executable tangle processor, ANSI-C/SAS-C version
  111. ./cweave        executable weave processor, ANSI-C/SAS-C version
  112. ./examples/wmerge    executable WEB merge program, ANSI-C/SAS-C version
  113. ./examples/wmerge.lnk    LINKFILE for SAS/C compiler
  114.  
  115. Please note that most examples have not been converted to ANSI C yet.
  116.  
  117. The additional files with extensions .h, .w, .tex, and .c are
  118. reproducable from the other sources by means of an executable WMERGE,
  119. CTANGLE, and an ANSI-C compiler.
  120.  
  121. Before starting, you should run cwebman.tex (needs cwebmac.tex!)
  122. through TeX and print out the manual. If you are not going to use this
  123. distribution on a AMIGA, you can reclaim some disk space by removing all
  124. AMIGA related files. You will have to compile the binaries using your
  125. ANSI-C compiler.
  126.  
  127. Make sure, that the files you got are in proper format (if you
  128. took them from a ZIP archive, line ends might still contain carriage
  129. return and linefeed characters, which may not be appropriate for your
  130. operating system).
  131.  
  132. How to create the binaries:
  133.  
  134. 1. Rename the makefile.amiga to Makefile or SMakefile, for use with SMake. 
  135. Note that makefile.org is lacking some dependencies, so better start
  136. from makefile.c89 when on a Un*x system.
  137.  
  138. 2. If your compiler is not named SC, you have to change the CC
  139. definition to the proper call in the Makefile, e.g. for the
  140. ANSI-C version of gcc use
  141.     CC = gcc -ansi 
  142. Check also the other lines in Makefile so that all directory
  143. definitions are set properly for your local system and configuration.
  144.  
  145. 3. Touch common.c, ctangle.c, and examples/wmerge.c to make them
  146. up-to-date. To make ctangle, cweave and the wmerge processor say
  147. `make all'; this should  produce actions similar to the following,
  148. possibly with harmless warning messages from the compiler, and e.g.
  149. the options and the name of the compiler may be as modified in
  150. Makefile:
  151.  
  152. sc define=DEBUG define=STAT nolink ctangle.c
  153. sc define=DEBUG define=STAT nolink common.c
  154. slink FROM $(OBJS) ctangle.o TO ctangle LIB $(LIBS)
  155. ./ctangle cweave cweave-p.ch
  156. sc define=DEBUG define=STAT code=FAR nolink cweave.c
  157. slink FROM $(OBJS) cweave.o  TO cweave LIB $(LIBS)
  158. (cd examples; sc define=DEBUG define=STAT link wmerge.c)
  159.  
  160. To get some reassurance that things are OK, you can say `make
  161. cautiously', which ensures that CTANGLE will reproduce itself.
  162. (Otherwise the source files common.w and ctangle.w won't actually
  163. have been used.)
  164.  
  165. To install cweave, ctangle, wmerge, ccwebmac.tex, the manual page,
  166. and an emacs macro file, say `make install'. You may also decide to
  167. move the files manually to their proper places. See the Makefile for
  168. details, what to move, and for suggestions, where to move it.
  169.  
  170. Incidentally, if you try the recompilation with another compiler, you
  171. may have no luck without changing the sources. In this case, it is
  172. necessary to do all the required changes in the .c file first, until
  173. you can compile ctangle.c and common.c. But it is necessary then, to
  174. add the same modifications to the change file. Finally processing
  175. ctangle.w and the extended change file for ctangle with the modified
  176. ctangle will create the same contents as the manual modifications. 
  177. If such changes are needed for a common compiler, please notify the
  178. authors about this and send the extended changes.
  179.  
  180. 4. Do not edit one of the .w files under any circumstances. Do all
  181. modifications in the associated .ch files, but keep in mind that
  182. you'll need a working ctangle processor to generate the updated .c
  183. files. Furthermore, do not edit common.h, prod.w, or cwebmac.tex.
  184. Make your modifications to common-p.hch, prod-p.ch, or ccwebmac.ch
  185. instead. To incorporate the changes you will need a working wmerge
  186. program. This will be prepared when ctangle and cweave are created.
  187. There is a tangled wmerge.c also in case you don't have a working
  188. ctangle processor so far.
  189.  
  190. 5. If you want a full documentation of the tangle and weave programs,
  191. type `make doc'. The documentation created will include the changes
  192. needed for the ANSI-C/C++ extensions.
  193.  
  194. 6. To delete all intermediate files created in the make processes say
  195. `make clean'.
  196.  
  197. 7. The weave and tangle processors now recognize a CWEBINCLUDE
  198. environment variable if common.c is compiled with INCLUDEDIR defined
  199. (which is the default in makefile.c89 and makefile.amiga). When an
  200. include file (@i command) cannot be found in the current or given
  201. directory, its name (completely as given!) is prefixed by the contents
  202. of CWEBINCLUDE and a second try is made. A multi-path search is not
  203. supported yet, i.e., CWEBINCLUDE---if not empty---must contain a single
  204. path name and must end with a `/'. Example in (Bourne-)sh or ksh:
  205.  
  206.     CWEBINCLUDE=/usr/local/lib/cweb/
  207.     export CWEBINCLUDE
  208.  
  209. Furthermore, the file name in an @i command should never indicate an
  210. absolute path, otherwise the mechanism described above will not work.
  211.  
  212. 8. The tangle and weave processors of this implementation are able to
  213. process traditional C, ANSI C, and C++. The latter feature, however,
  214. is just a first attempt, i.e., most C++ sources should be handled
  215. satisfactory, but some C++ constructions may yield unpleasant results
  216. in typesetting by CWEAVE. If you encounter problems, send a report to
  217. HHBODE@DOSUNI1.BITNET. Note that CTANGLE always uses a default
  218. extension .c for its output file; this may not be appropriate for C++
  219. compilers, but you can work around this by supplying a third argument
  220. in the command line (see cwebman).
  221.  
  222. 9. You can define a font for comments in the C part of the modules by means
  223. of the \cmntfont macro. It defaults to \tenss, i.e., ten-point sans-serif;
  224. if you don't like this, say, e.g.,
  225.  
  226.   \let\cmntfont=\tenrm
  227.  
  228. to get a ten-point roman comment font or whatever. This command should be
  229. placed in the limbo section of your sources or in your own version of
  230. ccwebmac.tex.
  231.